package carmensd.vista

import applicationModel.ExpedienteAppModel
import applicationModel.MapaMundiAppModel
import carmensd.vista.expedienteYvillanos.ExpedienteAdministradorWindow
import modelo.Juego
import org.uqbar.arena.layout.HorizontalLayout
import org.uqbar.arena.layout.VerticalLayout
import org.uqbar.arena.widgets.Button
import org.uqbar.arena.widgets.Label
import org.uqbar.arena.widgets.Panel
import org.uqbar.arena.windows.MainWindow
import org.uqbar.arena.windows.Window

/**
 * Ventana de inicio del juego. Su modelo es el objeto del dominio Juego.
 */
class ComienzoJuegoWindow extends MainWindow<Juego> {

	new(Juego model) {
		super(model)
	}
	
	override createContents(Panel panel) {
		this.setTitle("Dónde está Carmen San Diego?");
		panel.setLayout(new VerticalLayout());

		new Label(panel).setText("Qué haremos ahora Detective?");
		this.colocarBotones(panel);
	}

	def colocarBotones(Panel panel) {
		var Panel panelBoton = new Panel(panel);
		panelBoton.setLayout(new HorizontalLayout());

		new Button(panelBoton) => [
			caption = "Resolver Misterio";
			onClick [|this.abrirCaso()]
		]
		new Button(panelBoton) => [
			caption = "MapaMundi";
			onClick [|this.abrirMapamundi()];
		]
		new Button(panelBoton) => [
			caption = "Expedientes";
			onClick [|this.abrirExpediente];
		]
	}

	def abrirCaso() {
		this.openSimpleWindow(new InicioCasoWindow(this, modelObject))
	}

	def abrirMapamundi() {
		this.openSimpleWindow(new MapaMundiWindow(this, new MapaMundiAppModel(this.modelObject.mapamundiDelJuego)))
	}

	/** Abre la ventana de expediente que esta bindeada con el expediente real del juego */
	def abrirExpediente() {
		this.openSimpleWindow(new ExpedienteAdministradorWindow(this, new ExpedienteAppModel(modelObject.expedienteDelJuego)))
	}

	def openSimpleWindow(Window w) {
		w.open
	}

//new MapaMundiWindow(this, new MapaMundiAppModel)
}
